import pandas as pd
import numpy as np

'''
生成
'''

# DataFrame是二维的
data = [1, 2, 3, 4, 5, 6]
df = pd.DataFrame(data)

# 2列数据，一列是名字，一列是年龄
data = [['zhangsan', 10], ['lisi', 9], ['wangwu', 11]]
pd.DataFrame(data, columns=['name', 'age'])

# 使用字典创建DataFRame
data = {
    "name": ['zhangsan', 'lisi', 'wangwu'],
    "age": [19, 20, 21]
}
pd.DataFrame(data, index=list("123"))

# 使用Series创建DataFrame
data = {
    "one": pd.Series([1, 2, 3], index=list("abc")),
    "two": pd.Series([1, 2, 3, 4], index=list("abcd"))
}
df = pd.DataFrame(data)

# 获取一列数据
df['one']

# 增加一列
df["three"] = pd.Series([4, 5, 6], index=list("abc"))
df["four"] = df['one'] + df['three']

# 删除列
del df['three']

# 删除列
df.pop("two")

'''
迭代
'''
df = pd.DataFrame({
    'date': pd.date_range(start='2020-01-01', periods=7, freq='D'),
    "a": np.linspace(0, 6, 7),
    "b": np.random.randn(7),
    "c": np.random.choice(["Low", "Medium", "High"], 7).tolist(),
    "d": np.random.normal(100, 10, size=(7)).tolist()
})

'''
日期数据
'''
# 开始时间2020-01-01 五个日期   频率是月
date = pd.date_range('2020-01-01', periods=5, freq='M')

# b是business 工作日
# B   工作日
# D   自然日
# W   每周
# M   每月
# S   秒
# ms  毫秒
# A   年
date = pd.date_range('2020-01-01', periods=10, freq='B')

'''
时间的计算
'''
# 设置时间差
timediff = pd.Timedelta(" 2 days 2 hours 15 minutes 30seconds")
# 通过整数设置时间差
timediff = pd.Timedelta(6, unit='h')
pd.Timedelta(days=2)

'''
重建索引
'''
df = pd.DataFrame({
    "a": pd.date_range(start='2020-01-01', periods=5, freq='D'),
    "b": [1, 2, 3, 4, 5],
    "c": [0.1, 0.2, 0.3, 0.4, 0.5]
})

# 重建索引reIndex
# 有的索引会提取出数据，没有的话以Nan代替
df.reindex(index=[0, 2, 4], columns=list('abd'))

# 重命名
df.rename(columns={'a': 'f', 'b': 'hello'})
